package com.zw.pdm.module.craft.mapper;

import com.zw.pdm.entity.craft.CraMakeDetail;
import com.zw.pdm.entity.craft.CraMakeSheet;
import com.zw.pdm.entity.production.*;
import com.zw.pdm.module.craft.model.CarMakeResultModel;
import com.zw.pdm.module.craft.model.ServiceTaskModel;

import java.util.List;

/**
 * @Description:
 * @Author: China.sgl
 * @Date: 2020/8/8 13:28
 */
public interface CraftReceiveMapper {


    /**
     * 提报计划查询 列表查询
     */
    List<ServiceTaskModel> findWithCraftQuery(ServiceTaskModel serviceTaskModel);

    /**
     * 查询图纸修改的明细ID
     *
     * @param sheetId
     * @return
     */
    List<DrawChange> selectDrawChangByID(String sheetId);

    /**
     * 图纸变更接收处理
     *
     * @param resultId
     * @return
     */
    int updatCraDetail(Integer resultId);

    /**
     * 查询工艺明细
     *
     * @param sheetId
     * @return
     */
    List<CraMakeDetail> selectMakePlanByID(String sheetId);

    /**
     * 查询工艺主表
     *
     * @param sheetId
     * @return
     */
    List<CraMakeSheet> selectCrasheetById(String sheetId);

    /**
     * @param craMakeSheet
     * @return
     */
    int insertCraSheet(CraMakeSheet craMakeSheet);

    /**
     * 反写make_sheet表状态
     *
     * @param makeSheet
     * @return
     */
    int updateMakeSheet(MakeSheet makeSheet);

    /**
     * 反写draw_sheet表状态
     * @param drawSheet
     * @return
     */
    int updateDrawSheet(DrawSheet drawSheet);

    /**
     * 接收原始单新增工艺明细表数据
     *
     * @param craMakeDetail
     * @return
     */
    int insertCraDetail(CraMakeDetail craMakeDetail);

    /**
     * 查询CarMakeResultModel对象数据即查询接收明细
     *
     * @param sheetId
     * @return
     */
    List<CarMakeResultModel> selectCraftReceive(String sheetId);

    /**
     * 修改项目数量
     *
     * @param craMakeSheet
     * @return
     */
    int upadteCraSheetProNum(CraMakeSheet craMakeSheet);

    /**
     * 目录变更修改工艺接收明细表
     *
     * @param carMakeResultModel
     * @return
     */
    int updateCraDetail(CarMakeResultModel carMakeResultModel);

    int updateCraDetailDel(CarMakeResultModel carMakeResultModel);

    /**
     * 查询图纸变更明细
     *
     * @param serviceTaskModel
     * @return
     */
    List<DrawChange> SelectDrawChangeBySheetId(ServiceTaskModel serviceTaskModel);

    /**
     * 查询原始单明细
     *
     * @param serviceTaskModel
     * @return
     */
    List<MakePlan> SelectMakePlanBySheetId(ServiceTaskModel serviceTaskModel);

    /**
     * 查询目录变更单明细
     *
     * @param serviceTaskModel
     * @return
     */
    List<MakeChange> SelectMakeChangeBySheetId(ServiceTaskModel serviceTaskModel);

    /**
     * 查询选中主单（制作件）
     *
     * @param serviceTaskModel
     * @return
     */
    List<ServiceTaskModel> findMakeSheetCraft(ServiceTaskModel serviceTaskModel);

    /**
     * 查询选中主单（图纸）
     *
     * @param serviceTaskModel
     * @return
     */
    List<ServiceTaskModel> findDrawSheetCraft(ServiceTaskModel serviceTaskModel);

    /**
     * 通过resultId查询工艺接收明细表
     *
     * @param carMakeResultModel
     * @return
     */
    List<CraMakeDetail> selectMakeDetailByResultId(CarMakeResultModel carMakeResultModel);

    /**
     * 修改排序
     * @param sheetId
     * @return
     */
    Integer updateOrderNum(Integer sheetId);

    /**
     * 修改拆分排序
     * @param sheetId
     * @return
     */
    Integer updateOrderPid(Integer sheetId);

    /**
     * 通过id查询makesheet表
     * @param id
     * @return
     */
    List<MakeSheet> selectMakeSheetById(Integer id);

    /**
     * 通过resultid查询makedetail表
     * @param resultId
     * @return
     */
    List<CraMakeDetail> selectMakeDetailListByResultId(Integer resultId);

    /**
     * 根据drawsheetId查询输出表明细
     * @param sheetId
     * @return
     */
    List<MakeResult> selectMakeResultByDrawSheetId(Integer sheetId);

    /**
     * 通过项目编号，部分，类型 查询result表
     * @param serviceTaskModel
     * @return
     */
    List<MakeResult> selectMakeResultByAll(ServiceTaskModel serviceTaskModel);

    int insertAddCraDetail(CraMakeDetail craMakeDetail);

    /**
     * 查询突变更的图号 工艺表中是否存在
     * @param sheetId
     * @return
     */
    int selectCraMakeDetail(Integer sheetId);


}
